import java.util.ArrayList;
import java.util.Hashtable;


public class IndiceInvertido {

	Hashtable<String, RegistroIndice> registers;			// Hashtable con una "palabra" como clave y un RegistroIndice como elemento
	
	// Constructor
	public IndiceInvertido(){
		registers = new Hashtable<String, RegistroIndice>();
	}
	
	// Actualiza el indice con el contenido de un documento nuevo
	public void addDocument(Documento document){
		String[] words = document.getWordsDocument();
		for (int i = 0; i < words.length; i++)
		{
			if (registers.containsKey(words[i]))
			{
				RegistroIndice regInd = (RegistroIndice)registers.get(words[i]);
				regInd.addDocument(document);
			}
			else
			{
				RegistroIndice regInd = new RegistroIndice(words[i], document);
				registers.put(words[i], regInd);
			}
		}
	}
	
	// Retorna la lista de documentos que contienen a la palabra "word" en su contenido
	public ArrayList<String> getDocuments(String word){
		return ((RegistroIndice)registers.get(word)).getDocuments();
	}
}
